package com.xindacloud.sms.console.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xindacloud.sms.console.result.Result;
import com.xindacloud.sms.console.system.dto.*;
import com.xindacloud.sms.console.system.entity.SmsPricing;
import com.xindacloud.sms.console.system.vo.SearchSmsPricingPageVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 价格列表 服务类
 * </p>
 *
 * @author czc
 * @since 2019-10-08
 */
public interface ISmsPricingService extends IService<SmsPricing> {

    Result getPricingList(SmsPricingDTO smsPricingDTO);

    Result updateStatus(SmsPricingDTO smsPricingDTO);

    Result importPriceExcel(MultipartFile file, String agentId);

    /*    Result importPriceExcel(MultipartFile file, String agentId, String agentGroup);*/

    IPage<SearchSmsPricingPageVO> queryPricingPageBy(SearchSmsPricingDTO searchSmsPricingDTO);

    IPage<SmsPricing> queryPricingPageByAgentId(Integer pageNum, Integer pageSize, String agentId, String countryName,String countryCode);

    Boolean updatePricingByCountry(UpdatePriceByCountryDTO priceByCountryDTO);

    void downloadAllPrice(HttpServletRequest request, HttpServletResponse response);

    Result uploadAllPrice(MultipartFile file);

    Result updateBatchPrice(SmsUpdatePricingDTO smsUpdatePricingDTO);

    List<SmsPricing> queryPricingList();

    List<SmsPricing> queryUserAllowOperatorByConditions(QueryPricingByConditionsDTO conditionsDTO);

    Boolean updateStatusByAgentIds(List<String> agentIds, Boolean status);

    List<SmsPricing> querySmsPricing(List<String> agentIds);

	void downloadAgentAllPrice(HttpServletRequest request, HttpServletResponse response, SmsPricingDTO smsPricingDTO);

	Result uploadAgentAllPrice(MultipartFile file);

	Result deleteAgentPrice(SmsUpdatePricingDTO smsUpdatePricingDTO);

	Result deleteAgentAllPrice(SmsUpdatePricingDTO smsUpdatePricingDTO);

}
